const {User} = require('@/mysql/user') // 引入数据库文件
const bcrypt = require('bcrypt');
const jsonwebtoken = require('jsonwebtoken');
const login = async (ctx) => {
    const data = ctx.request.body
    try {
        const user = await User.findName(data.name)
        if (!user.length) {
            ctx.status = 401
            ctx.body = {
                message: '用户名不存在，请检查',
            }
            return;
        }

        // 匹配密码是否相等
        if (await bcrypt.compare(data.password, user[0].password)) {
            ctx.status = 200
            const secret = 'see_you'
            ctx.body = {
                code: 0,
                message: '登录成功',
                // 生成 token 返回给客户端
                token: jsonwebtoken.sign({
                    data: user,
                    // 设置 token 过期时间
                    exp: Math.floor(Date.now() / 1000) + (60 * 360), // 60 seconds * 60 minutes = 1 hour
                }, secret),
            }
        } else {
            ctx.status = 401
            ctx.body = {
                code: 401,
                message: '密码错误,请检查后重试',
            }
        }
    } catch (error) {
        ctx.throw(500)
    }
}
module.exports = login
